#pragma once
#include "drawablewidget.h"

#include "Layer.h"
#include "NeuralNetThreeLayers.h"

#include <vector.h>
#include <matrix.h>

class NeuralNetViz :
	public ICustomDraw
{
	NeuralNetThreeLayers<NnetLayer<2, 15, 1, 1>, NnetLayer<15, 2, 1, 1>, NnetLayer<2, 1, 1, 1> >
		m_nnet;
public:
	NeuralNetViz(void);
	~NeuralNetViz(void);

	virtual void Draw();

	void Train(mdsVector<2, double> p2Inputs, double lfZ, double lfRate)
	{
		double lfScratch;
		m_nnet.Train(p2Inputs.GetArr(), &lfZ, &lfScratch);
	}
};
